package com.itheima.case2.dao;

import com.itheima.case2.pojo.po.Role;
import com.itheima.case2.pojo.vo.AddRole;
import com.itheima.case2.pojo.vo.UpdateRole;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface RoleMapper {
    //查询所有角色信息
    @Select("select * from t_role")
    List<Role> queryAllRole();

    //查询角色表数据条数
    Long queryAllRoleCount(@Param("name") String name);

    //分页查询角色以及权限信息
    List<Role> queryRolePerByPage(@Param("startIndex") Integer index, @Param("pageSize") Integer pageSize,@Param("name") String name);

    //修改角色信息
    @Update("update t_role set name=#{name},keyword=#{keyword},description=#{description} where id=#{id}")
    void updateRole(UpdateRole updateRoles);
    //删除该角色对应的权限
    @Delete("delete from t_role_permission where role_id=#{id}")
    void deleteById(@Param("id") String id);
    //添加该角色的权限信息
    @Insert("insert into t_role_permission values (#{roleId},#{perId})")
    void insertUserAndRole(@Param("roleId") String roleId,@Param("perId") String perId);

    //添加角色和对应的权限信息
    @Insert("insert into t_role values(null,#{name},#{keyword},#{description})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    void insertRole(AddRole addRole);

    //删除角色信息（需要先删除该角色权限中间表的所有和该角色有关信息）
    @Delete("delete from t_role where id=#{id}")
    void deleteRole(@Param("id") String id);




}
